<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Stack trace</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Stack_trace"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Stack_trace rootpage-Stack_trace skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Stack trace</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">"Backtrace" redirects here. For the 2018 film, see <a href="Backtrace_(film)" title="Backtrace (film)">Backtrace (film)</a>.</div>
<p>In <a href="Computing" title="Computing">computing</a>, a <b>stack trace</b> (also called <b>stack backtrace</b><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> or <b>stack traceback</b><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>) is a report of the active <a href="Stack_frame" class="mw-redirect" title="Stack frame">stack frames</a> at a certain point in time during the execution of a <a href="Computer_program" title="Computer program">program</a>. When a program is run, memory is often dynamically allocated in two places: the <a href="Stack_(abstract_data_type)#Hardware_stack" title="Stack (abstract data type)">stack</a> and the <a href="Memory_management#HEAP" title="Memory management">heap</a>. Memory is continuously allocated on a stack but not on a heap. Stack also refers to a programming construct, thus to differentiate it, this stack is referred to as the program's <b><a href="Call_stack" title="Call stack">function call stack</a></b>. Technically, once a block of memory has been allocated on the stack, it cannot be easily removed as there can be other blocks of memory that were allocated after it. Each time a function is called in a program, a block of memory called an <b>activation record</b> is allocated on top of the call stack. Generally, the activation record stores the function's arguments and local variables. What exactly it contains and how it's laid out is determined by the <a href="Calling_convention" title="Calling convention">calling convention</a>.
</p><p>Programmers commonly use stack tracing during interactive and post-mortem <a href="Debugging" title="Debugging">debugging</a>. End-users may see a stack trace displayed as part of an <a href="Error_message" title="Error message">error message</a>, which the user can then report to a programmer.
</p><p>A stack trace allows tracking the sequence of <a href="Nested_function" title="Nested function">nested functions</a> called - up to the point where the stack trace is generated. In a post-mortem scenario this extends up to the function where the failure occurred (but was not necessarily caused). <a href="Tail_call" title="Tail call">Sibling calls</a> do not appear in a stack trace.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Language_support">Language support</h2></div>
<p>Many programming languages, including <a href="Java_(programming_language)" title="Java (programming language)">Java</a><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> and <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> have built-in support for retrieving the current stack trace via system calls. Before <code>std::stacktrace</code> was added in standard library as a container for <code>std::stacktrace_entry</code>, pre-<a href="C%2B%2B23" title="C++23">C++23</a> has no built-in support for doing this, but C++ users can retrieve stack traces with (for example) the <a rel="nofollow" class="external text" href="https://stacktrace.sourceforge.net/">stacktrace</a> <a href="Library_(computing)" title="Library (computing)">library</a>. In <a href="JavaScript" title="JavaScript">JavaScript</a>, <a href="Exception_handling" title="Exception handling">exceptions</a> hold a <code>stack</code> property that contain the stack from the place where it was thrown.
</p>
<div class="mw-heading mw-heading3"><h3 id="Python">Python</h3></div>
<p>As an example, the following <a href="Python_(programming_language)" title="Python (programming language)">Python</a> program contains an error.
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span class="k">def</span><span class="w"> </span><span class="nf">a</span><span class="p">():</span>
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
<span class="hll"> <span class="n">j</span> <span class="o">=</span> <span class="n">b</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span> <span class="k">return</span> <span class="n">j</span>
<span class="k">def</span><span class="w"> </span><span class="nf">b</span><span class="p">(</span><span class="n">z</span><span class="p">):</span>
<span class="n">k</span> <span class="o">=</span> <span class="mi">5</span>
<span class="k">if</span> <span class="n">z</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="hll"> <span class="n">c</span><span class="p">()</span>
</span> <span class="k">return</span> <span class="n">k</span> <span class="o">+</span> <span class="n">z</span>
<span class="k">def</span><span class="w"> </span><span class="nf">c</span><span class="p">():</span>
<span class="hll"> <span class="n">error</span><span class="p">()</span>
</span>
<span class="hll"><span class="n">a</span><span class="p">()</span>
</span></pre></div>
<p>Running the program under the standard Python interpreter produces the following error message.
</p>
<div class="mw-highlight mw-highlight-lang-pytb mw-content-ltr" dir="ltr"><pre><span class="gt">Traceback (most recent call last):</span>
File <span class="nb">"file.py"</span>, line <span class="m">15</span>, in <span class="n"><module></span>
<span class="w"> </span><span class="n">a</span><span class="p">()</span>
File <span class="nb">"file.py"</span>, line <span class="m">3</span>, in <span class="n">a</span>
<span class="w"> </span><span class="n">j</span> <span class="o">=</span> <span class="n">b</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
File <span class="nb">"file.py"</span>, line <span class="m">9</span>, in <span class="n">b</span>
<span class="w"> </span><span class="n">c</span><span class="p">()</span>
File <span class="nb">"file.py"</span>, line <span class="m">13</span>, in <span class="n">c</span>
<span class="w"> </span><span class="n">error</span><span class="p">()</span>
<span class="gr">NameError</span>: <span class="n">name 'error' is not defined</span>
</pre></div>
<p>The stack trace shows where the error occurs, namely in the <code>c</code> function. It also shows that the <code>c</code> function was called by <code>b</code>, which was called by <code>a</code>, which was in turn called by the code on line 15 (the last line) of the program. The activation records for each of these three functions would be arranged in a stack such that the <code>a</code> function would occupy the bottom of the stack and the <code>c</code> function would occupy the top of the stack.
</p>
<div class="mw-heading mw-heading3"><h3 id="Java">Java</h3></div>
<p>In <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, stack traces can be dumped manually with <code>Thread.dumpStack()</code><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Take the following input:
</p>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">args</span><span class="o">[]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="hll"><span class="w"> </span><span class="n">demo</span><span class="p">();</span>
</span><span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">demo</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="hll"><span class="w"> </span><span class="n">demo1</span><span class="p">();</span>
</span><span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">demo1</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">demo2</span><span class="p">();</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">demo2</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="hll"><span class="w"> </span><span class="n">demo3</span><span class="p">();</span>
</span><span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">demo3</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="hll"><span class="w"> </span><span class="n">Thread</span><span class="p">.</span><span class="na">dumpStack</span><span class="p">();</span>
</span><span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>The exception lists functions in descending order, so the most-inner call is first.
</p>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span class="n">java</span><span class="p">.</span><span class="na">lang</span><span class="p">.</span><span class="na">Exception</span><span class="p">:</span><span class="w"> </span><span class="n">Stack</span><span class="w"> </span><span class="n">trace</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">java</span><span class="p">.</span><span class="na">lang</span><span class="p">.</span><span class="na">Thread</span><span class="p">.</span><span class="na">dumpStack</span><span class="p">(</span><span class="n">Thread</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">1336</span><span class="p">)</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">Main</span><span class="p">.</span><span class="na">demo3</span><span class="p">(</span><span class="n">Main</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">15</span><span class="p">)</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">Main</span><span class="p">.</span><span class="na">demo2</span><span class="p">(</span><span class="n">Main</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">12</span><span class="p">)</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">Main</span><span class="p">.</span><span class="na">demo1</span><span class="p">(</span><span class="n">Main</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">9</span><span class="p">)</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">Main</span><span class="p">.</span><span class="na">demo</span><span class="p">(</span><span class="n">Main</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">6</span><span class="p">)</span>
<span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">Main</span><span class="p">.</span><span class="na">main</span><span class="p">(</span><span class="n">Main</span><span class="p">.</span><span class="na">java</span><span class="p">:</span><span class="mi">3</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="C_and_C++">C and C++</h3></div>
<p>Both <a href="C_(programming_language)" title="C (programming language)">C</a> and <a href="C%2B%2B" title="C++">C++</a> (pre-<a href="C%2B%2B23" title="C++23">C++23</a>) do not have native support for obtaining stack traces, but libraries such as <a href="GNU_C_Library" class="mw-redirect" title="GNU C Library">glibc</a> and <a href="Boost_(C%2B%2B_libraries)" title="Boost (C++ libraries)">boost</a> provide this functionality.<sup id="cite_ref-glibc_Backtraces_6-0" class="reference"><a href="#cite_note-glibc_Backtraces-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> In these languages, some compiler optimizations may interfere with the call stack information that can be recovered at runtime. For instance, <a href="Inline_expansion" title="Inline expansion">inlining</a> can cause missing stack frames, <a href="Tail_call" title="Tail call">tail call</a> optimizations can replace one stack frame with another, and frame pointer elimination can prevent call stack analysis tools from correctly interpreting the contents of the call stack.<sup id="cite_ref-glibc_Backtraces_6-1" class="reference"><a href="#cite_note-glibc_Backtraces-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>For example, glibc's <code>backtrace()</code> function returns an output with the program function and memory address.
</p>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span class="p">.</span><span class="o">/</span><span class="n">a</span><span class="p">.</span><span class="n">out</span><span class="p">()</span><span class="w"> </span><span class="p">[</span><span class="mh">0x40067f</span><span class="p">]</span>
<span class="p">.</span><span class="o">/</span><span class="n">a</span><span class="p">.</span><span class="n">out</span><span class="p">()</span><span class="w"> </span><span class="p">[</span><span class="mh">0x4006fe</span><span class="p">]</span>
<span class="p">.</span><span class="o">/</span><span class="n">a</span><span class="p">.</span><span class="n">out</span><span class="p">()</span><span class="w"> </span><span class="p">[</span><span class="mh">0x40070a</span><span class="p">]</span>
<span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">x86_64</span><span class="o">-</span><span class="n">linux</span><span class="o">-</span><span class="n">gnu</span><span class="o">/</span><span class="n">libc</span><span class="p">.</span><span class="n">so</span><span class="mf">.6</span><span class="p">(</span><span class="n">__libc_start_main</span><span class="o">+</span><span class="mh">0xf5</span><span class="p">)</span><span class="w"> </span><span class="p">[</span><span class="mh">0x7f7e60738f45</span><span class="p">]</span>
<span class="p">.</span><span class="o">/</span><span class="n">a</span><span class="p">.</span><span class="n">out</span><span class="p">()</span><span class="w"> </span><span class="p">[</span><span class="mh">0x400599</span><span class="p">]</span>
</pre></div>
<p>As of <a href="C%2B%2B23" title="C++23">C++23</a>, stack traces can be dumped manually by printing the value returned by static member function <code>std::stacktrace::current()</code>:<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-c++ mw-content-ltr" dir="ltr"><pre><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">stacktrace</span><span class="o">::</span><span class="n">current</span><span class="p">()</span><span class="w"> </span><span class="o"><<</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Rust">Rust</h3></div>
<p><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a> has two types of errors. Functions that use the panic <a href="Macro_(computer_science)" title="Macro (computer science)">macro</a> are "unrecoverable" and the current thread will become poisoned experiencing stack unwinding. Functions that return a <code>std::result::Result</code> are "recoverable" and can be handled gracefully.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> However, recoverable errors cannot generate a stack trace as they are manually added and not a result of a runtime error.
</p><p>As of June 2021, <a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a> has experimental support for stack traces on unrecoverable errors. Rust supports printing to <a href="Stderr" class="mw-redirect" title="Stderr">stderr</a> when a thread panics, but it must be enabled by setting the <code>RUST_BACKTRACE</code> <a href="Environment_variable" title="Environment variable">environment variable</a>.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>When enabled, such backtraces look similar to below, with the most recent call first.
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="n">thread</span><span class="w"> </span><span class="o">'</span><span class="na">main</span><span class="o">'</span><span class="w"> </span><span class="n">panicked</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="o">'</span><span class="na">execute_to_panic</span><span class="o">'</span><span class="p">,</span><span class="w"> </span><span class="n">main</span><span class="p">.</span><span class="n">rs</span><span class="p">:</span><span class="mi">3</span>
<span class="n">stack</span><span class="w"> </span><span class="n">backtrace</span><span class="p">:</span>
<span class="w"> </span><span class="mi">0</span><span class="p">:</span><span class="w"> </span><span class="nc">std</span><span class="p">::</span><span class="n">sys</span><span class="p">::</span><span class="n">imp</span><span class="p">::</span><span class="n">backtrace</span><span class="p">::</span><span class="n">tracing</span><span class="p">::</span><span class="n">imp</span><span class="p">::</span><span class="n">unwind_backtrace</span>
<span class="w"> </span><span class="mi">1</span><span class="p">:</span><span class="w"> </span><span class="nc">std</span><span class="p">::</span><span class="n">panicking</span><span class="p">::</span><span class="n">default_hook</span><span class="p">::{{</span><span class="n">closure</span><span class="p">}}</span>
<span class="w"> </span><span class="mi">2</span><span class="p">:</span><span class="w"> </span><span class="nc">std</span><span class="p">::</span><span class="n">panicking</span><span class="p">::</span><span class="n">default_hook</span>
<span class="w"> </span><span class="mi">3</span><span class="p">:</span><span class="w"> </span><span class="nc">std</span><span class="p">::</span><span class="n">panicking</span><span class="p">::</span><span class="n">rust_panic_with_hook</span>
<span class="w"> </span><span class="mi">4</span><span class="p">:</span><span class="w"> </span><span class="nc">std</span><span class="p">::</span><span class="n">panicking</span><span class="p">::</span><span class="n">begin_panic</span>
<span class="w"> </span><span class="mi">5</span><span class="p">:</span><span class="w"> </span><span class="nc">futures</span><span class="p">::</span><span class="n">task_impl</span><span class="p">::</span><span class="n">with</span>
<span class="w"> </span><span class="mi">6</span><span class="p">:</span><span class="w"> </span><span class="nc">futures</span><span class="p">::</span><span class="n">task_impl</span><span class="p">::</span><span class="n">park</span>
<span class="o">..</span><span class="p">.</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Tail_call" title="Tail call">Tail call</a></li>
<li><a href="Context_(computing)" title="Context (computing)">Context (computing)</a></li>
<li><a href="Stack_overflow" title="Stack overflow">Stack overflow</a></li>
<li><a href="Exception_handling" title="Exception handling">Exception handling</a></li>
<li><a href="Call_stack" title="Call stack">Call stack</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.gnu.org/software/libc/manual/html_node/Backtraces.html">"libc manual: backtraces"</a>. gnu.org<span class="reference-accessdate">. Retrieved <span class="nowrap">8 July</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.python.org/3/library/traceback.html">"traceback — Print or retrieve a stack traceback"</a>. python.org<span class="reference-accessdate">. Retrieved <span class="nowrap">8 July</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Thread.html#getStackTrace()">"Thread (Java SE 16 & JDK 16)"</a>. <i>Java Platform Standard Edition & Java Development Kit Version 16 API Specification</i>. 2021-03-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-07-04</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/dotnet/api/system.environment.stacktrace">"Environment.StackTrace Property (System)"</a>. <i>Microsoft Docs</i>. 2021-05-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-07-04</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#dumpStack--">"Thread (Java Platform SE 8 )"</a>. <i>docs.oracle.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-06-15</span></span>.</cite></span>
</li>
<li id="cite_note-glibc_Backtraces-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-glibc_Backtraces_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-glibc_Backtraces_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.gnu.org/software/libc/manual/html_node/Backtraces.html">"Backtraces (The GNU C Library)"</a>. <i>www.gnu.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-06-15</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.boost.org/doc/libs/1_76_0/doc/html/stacktrace/getting_started.html">"Getting Started - 1.76.0"</a>. <i>www.boost.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-06-15</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://open-std.org/JTC1/SC22/WG21/docs/papers/2020/n4901.pdf">"Working Draft, Standard for Programming Language C++"</a> <span class="cs1-format">(PDF)</span>. <i>open-std.org</i>. ISO/IEC. 2021-10-23. p. 766.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/nomicon/unwinding.html#:~:text=Rust%20has%20a%20tiered%20error,be%20handled%2C%20the%20thread%20panics.">"rustonomicon unwinding - Rust"</a>. <i>doc.rust-lang.org</i>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/std/backtrace/index.html">"std::backtrace - Rust"</a>. <i>doc.rust-lang.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-06-15</span></span>.</cite></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-02-12" href="https://en.wikipedia.org/wiki/?title=Stack_trace&oldid=1275350868">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>